<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="./lib/18/react.development.js"></script>
  <script src="./lib/18/react-dom.development.js"></script>
  <script src="./lib/babel.min.js"></script>
  <style>
    .content {
      font-size: 20px;
    }
  </style>
</head>
<body>
  <div id="app"></div>
  <script type="text/babel"> /* 声明使用babel进行编译 jsx => js*/

    /* 
    需求：实现评论列表功能
    - 如果有评论数据，就展示列表结构 li（ 列表渲染 )
    - name 表示评论人，渲染 h3
    - content 表示评论内容，渲染 p
    - 如果没有评论数据，就展示一个 h1 标签，内容为： 暂无评论！
    - 用户名的字体25px, 内容的字体20px
    - 点击内容区域提示它发表的时间
    */
   /* 
   jsx + 表达式
   条件渲染   if...else 
   列表渲染   map
   样式处理    className / style
   事件处理    onClick
   */
    function handleClick(time) {
      alert(time)
    }

    /* 
    高阶函数:
      参数是函数: 数组遍历相关的方法 / Promise | then/catch/finally / setTimeout|setInterval
      返回值是函数: bind / 返回函数的闭包
    */
    function handleClick2(time) {
      return () => {
        alert(time)
      }
    }

    const list = [
      { id: 1, name: 'jack', content: 'rose, you jump i jump', time: '03:21' },
      { id: 2, name: 'rose', content: 'jack, you see you, one day day', time: '03:22' },
      { id: 3, name: 'tom', content: 'jack,。。。。。', time: '03:23' }
    ]
    let vdom
    if (list.length===0) {
      vdom = <h1>暂无评论！</h1>
    } else {
      vdom = (
        <ul>
          {
            list.map(item => (
              <li key={item.id}>
                <h3>用户: <span style={{fontSize: 25}}>{item.name}</span></h3>
                {<p className="content" onClick={() => {alert(item.time)}}>{item.content}</p>}
                <p className="content" onClick={() =>handleClick(item.time)}>{item.content}</p>
                <p className="content" onClick={handleClick2(item.time)}>{item.content}</p>
              </li>
            ))
          }  
        </ul>
      )
    }

    

    ReactDOM.createRoot(document.getElementById('app')).render(vdom)

  </script>
</body>
</html>